package chapter05_array;

/**
 * ClassName: SelectArray02
 * Package: chapter05_array
 * Description:
 *定义数组 int[] arr=new int[]{2,3,5,10,23,45,52,56,78,99};
 *使用二分查找法，查找数字5是否在上述元素中出现过？如果出现了，输出其下标
 * @Author 安思宇
 * @Create 2025/2/26 18:42
 */
public class SelectArray02 {
    //二分查找法是不停地重复二分。
    public static void main(String[] args) {
        //定义数组
        int[] arr=new int[]{2,3,5,10,23,45,52,56,78,99};
        //定义目标
        int target=12;
        //定义首尾元素
        int head=0;
        int end= arr.length-1;
        int mid=0;
        boolean isFlag=false;
        //进行二分循环
        while (head<=end){
            mid=(end+head)/2;
            if (arr[mid]==target){
                isFlag=true;
                break;
            }else if(arr[mid]<target){
                head++;
            }else {
                end--;
            }
        }
        if(isFlag){
            System.out.println("找到了！下标为"+mid);
        }else {
            System.out.println("不好意思，没找到");
        }
    }
}
